很考验对背包的理解
对于$1$~$sqrt(n)$与$(sqrt(n)+$$1)$~$n,$我们可以用NOIP2001数的划分的类似做法,分别处理,显然$1$~$sqrt(n)$是个多重背包问题,$(sqrt(n)+$$1)$~$n$是个完全背包问题
对于$1$~$sqrt(n)$,我们可以用总方案数减去不合法的方案数(具体见代码注释),并利用滚存优化空间
对于$(sqrt(n)+$$1)$~$n,$我们可以用NOIP2001数的划分的类似做法,将划分分成两种类型,进行$dp$转移
1 |
|
很考验对背包的理解
对于$1$~$sqrt(n)$与$(sqrt(n)+$$1)$~$n,$我们可以用NOIP2001数的划分的类似做法,分别处理,显然$1$~$sqrt(n)$是个多重背包问题,$(sqrt(n)+$$1)$~$n$是个完全背包问题
对于$1$~$sqrt(n)$,我们可以用总方案数减去不合法的方案数(具体见代码注释),并利用滚存优化空间
对于$(sqrt(n)+$$1)$~$n,$我们可以用NOIP2001数的划分的类似做法,将划分分成两种类型,进行$dp$转移
1 | #include <bits/stdc++.h> |